package com.example.monitor.model;

import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * 系统概要信息
 */
@Data
public class SysEntity {
    /**
     * 服务器名称
     */
    private String computerName;

    /**
     * 服务器IP
     */
    private String computerIp;

    /**
     * 操作系统名称
     */
    private String osName;

    /**
     * 操作系统架构
     */
    private String osArch;

    /**
     * 操作系统版本
     */
    private String osVersion;

    /**
     * 系统启动时间
     */
    private String bootTime;

    /**
     * 系统运行时长（毫秒）
     */
    private Long uptime;

    /**
     * 当前用户名称
     */
    private String user;

    /**
     * 进程总数
     */
    private Integer processCount;

    /**
     * 线程总数
     */
    private Integer threadCount;

    /**
     * 系统负载（最近1分钟）
     */
    private BigDecimal systemLoad1;

    /**
     * 系统负载（最近5分钟）
     */
    private BigDecimal systemLoad5;

    /**
     * 系统负载（最近15分钟）
     */
    private BigDecimal systemLoad15;

    /**
     * 制造商
     */
    private String manufacturer;

    /**
     * 型号
     */
    private String model;

    /**
     * 序列号
     */
    private String serialNumber;

    /**
     * 固件版本
     */
    private String firmwareVersion;

    /**
     * 所有网络接口信息
     */
    private List<NetworkInterfaceInfo> networkInterfaces;

    /**
     * 网络接口信息内部类
     */
    @Data
    public static class NetworkInterfaceInfo {
        private String name;
        private String displayName;
        private String mac;
        private String ipv4;
        private String ipv6;
        private Long bytesRecv;
        private Long bytesSent;
        private Long packetsRecv;
        private Long packetsSent;
    }
}
